package br.com.utfpr.webservices;

import br.com.utfpr.modelo.Estado;
import br.com.utfpr.persistence.ConsultaEstado;
import br.com.utfpr.persistence.ConsultaMunicipios;

public class ConsultaDados {
	
	/**
	 * Efetua a consulta do estado no BD.
	 * 
	 * @param siglaUf
	 * @return
	 */
	private Estado consularEstado (String siglaUf) {
		ConsultaEstado persistence = new ConsultaEstado();
		return persistence.consultaEstadoPorUf(siglaUf);
	}
	
	/**
	 * Consutla dados do estado.
	 * 
	 * @param siglaUf
	 * @return
	 */
	public String consultarDadosEstado (String siglaUf) {
		
		Estado e = consularEstado(siglaUf);
		
		if (e != null) {
			return e.getNome();
		}
		
		return null;
	}
	
	/**
	 * Consulta a quantidade de municipios para o estado informado.
	 * 
	 * @param siglaUf
	 * @return
	 */
	public int consultarQuantidadeMunicipios (String siglaUf) {
		
		Estado e = consularEstado(siglaUf);
		if (e != null) {
			ConsultaMunicipios persistence = new ConsultaMunicipios();
			return persistence.quantidadeMunicipios(e.getIbge());
		}
		
		return 0;
	}
	
	/**
	 * Consulta nome do município pelo código do IBGE.
	 * 
	 * @param codigoIbge
	 * @return
	 */
	public String consultarNomeMunicipio (int codigoIbge) {
		ConsultaMunicipios persistence = new ConsultaMunicipios();
		return persistence.consultarNomeMunicipio(codigoIbge);
	}
	
	/**
	 * Consulta código IBGE do município.
	 * 
	 * @param String - siglaUf.
	 * @param String - nomeMunicipio.
	 * @return int - código do município.
	 */
	public int consultarCodigoIbgeMunicipio (String siglaUf, String nomeMunicipio) {
		Estado e = consularEstado(siglaUf);
		if (e != null) {
			ConsultaMunicipios persistence = new ConsultaMunicipios();
			return persistence.consultarCodigoIbge(e.getIbge(), nomeMunicipio);
		}
		
		return 0;
	}
}